#ifndef EXAMPLESCENE_H
#define EXAMPLESCENE_H


#include <yam3dscene.h>
#include <graphics/mesh.h>
#include <graphics/camera.h>
#include <render/shader.h>
#include <render/texture2d.h>
#include <core/core.h>

using namespace yam3d;

class ExampleScene : public Yam3DScene
{
public:
    ExampleScene();
    virtual ~ExampleScene();

    virtual void resize(int width, int height);
    virtual void update(float deltaTime);
    virtual void render() const;

    static Yam3DScene* createInstance()
    {
        return new ExampleScene();
    }

private:
    graphics::Camera*                       m_camera;
    core::vector<graphics::Mesh*>           m_meshes;
    core::vector<graphics::Pass*>           m_passes;
    render::ShaderProgram*                  m_perVertexProgram;
    render::ShaderProgram*                  m_perFragmentProgram;
    render::Texture2D*                      m_baseMap;
    render::Texture2D*                      m_normalMap;
    render::Texture2D*                      m_bumpMap;


};

#endif // EXAMPLESCENE_H
